home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor1 / fromasc.lst < prev    next >
File List  |  1991-01-29  |  5KB  |  97 lines

  1.                                     ASC\->
  2.  
  3. 80000: 02D9D ! Program
  4. 80005: 1592D ; Set last RPL token to <0h> and verify DEPTH >= 1
  5. 8000A: 18FB2 ; Check arguments for type
  6. 8000F: 0400D ; <3h>
  7. 80014: 02D9D ! Program
  8. 80019: [...] ! # 0000h
  9. 80027: 06657 ; Internal NEWOB
  10. 8002C: 62747 ; Internal SWAP and DUP
  11. 80031: 05636 ; Internal SIZE (1:String) -> System Binary
  12. 80036: 03188 ; Internal DUP
  13. 8003B: [...] ! <41h>
  14. 80045: 03EF7 ; Internal / (2:System Binary,1:System Binary) -> (2:rem,1:div)
  15. 8004A: 60F9B ; drop level two object
  16. 8004F: 03DE0 ; Internal - (2:System Binary,1:System Binary)
  17. 80054: 04017 ; <4h>
  18. 80059: 031AC ; Internal DUP2
  19. 8005E: 03CE4 ; if TOS-1 < TOS (System Binary) -> True/False
  20. 80063: 61993 ; if pop TOS = True, then do next/return, else skip next
  21. 80068: 02D9D ! Program
  22. 8006D: 03258 ; Internal DROP2
  23. 80072: 60F9B ; drop level two object
  24. 80077: [...] ! "Invalid String"
  25. 8009D: 1A339 ; DOERR (XLIB 2 42)
  26. 800A2: 0312B ! End Marker
  27. 800A7: 03DE0 ; Internal - (2:System Binary,1:System Binary)
  28. 800AC: 055DF ; ""
  29. 800B1: 032C2 ; Internal OVER
  30. 800B6: 61C1C ; allocate nibbles (2:sized object,1:System Binary)
  31. 800BB: 03223 ; Internal SWAP
  32.     ; *** (4:#0000h,3:orig str,2:alloc str,1:size) ***
  33. 800C0: 02DCC ! Code
  34. 800C5: 000AF ! 175 nibbles (next RPL at 80174)
  35. 800CA: 8F14660    GOSBVL 06641          ; MC: pop TOS (System Binary) -> A.A
  36. 800D1: CC         A=A-1  A              ; A.A = size-1
  37. 800D3: 8FB9760    GOSBVL 0679B          ; MC: Save D,B,D1,D0 (uses C)
  38. 800DA: 840        ST=0   0              ; start new object phase
  39. 800DD: 3104       LCHEX  40             ! "@"
  40. 800E1: AE7        D=C    B              ; D (characters remaining in line) = 64
  41. 800E4: D8         B=A    A              ; B.A = size-1
  42. 800E6: 143        A=DAT1 A              ; A.A = adr of alloc str
  43. 800E9: 130        D0=A                  ; D0 = adr of alloc str
  44. 800EC: 169        D0=D0+ 10             ; D0 = adr of new object (alloc str data)
  45. 800EF: 132        AD0EX                 ; A.A = adr of new object
  46. 800F2: 130        D0=A                  ; ...
  47. 800F5: 141        DAT1=A A              ; adjust stack to new object
  48. 800F8: 174        D1=D1+ 5              ; A = adr of orig str
  49. 800FB: 143        A=DAT1 A              ; ...
  50. 800FE: 174        D1=D1+ 5              ; C = adr of checksum
  51. 80101: 147        C=DAT1 A              ; ...
  52. 80104: 06         RSTK=C                ; save checksum adr
  53. 80106: 131        D1=A                  ; D1 = adr of orig str
  54. 80109: 179        D1=D1+ 10             ; D1 = adr of orig str data
  55. 8010C: A6F        D=D-1  B              ; count character in line
  56. 8010F: 5C0        GONC   8011C          ; go if not EOL
  57. 80112: 31F3       LCHEX  3F             ! "?"  ; reset D for new line (D=63)
  58. 80116: AE7        D=C    B              ; ...
  59. 80119: 171        D1=D1+ 2              ; skip EOL character
  60. 8011C: AE2        C=0    B              ; convert character to nibble
  61. 8011F: 14F        C=DAT1 B            
  62. 80122: 8082103    LAHEX  30             ! "0"
  63. 80129: B62        C=C-A  B            
  64. 8012C: 8082190    LAHEX  09             ! "."
  65. 80133: 9EEB0      ?A>=C  B            
  66.           GOYES  80141
  67. 80138: 808207     LAHEX  7            
  68. 8013E: B62        C=C-A  B            
  69. 80141: 15C0       DAT0=C 1              ; store nibble into new object
  70. 80145: 160        D0=D0+ 1              ; next nibble in new object
  71. 80148: 171        D1=D1+ 2              ; next character in orig str
  72. 8014B: CD         B=B-1  A              ; decr characters remaining
  73. 8014D: 5EB        GONC   8010C          ; go if more
  74. 80150: 870A1      ?ST=1  0              ; exit if checksum in progress
  75.           GOYES  8016D
  76. 80155: 3430000    LCHEX  00003          ; B.A = 3 (size of checksum - 1)
  77. 8015C: D5         B=C    A              ; ...
  78. 8015E: 07         C=RSTK                ; C = adr of checksum
  79. 80160: 134        D0=C                  ; D0 = adr of checksum data
  80. 80163: 169        D0=D0+ 10             ; ...
  81. 80166: 850        ST=1   0              ; start of checksum phase
  82. 80169: 62AF       GOTO   8010C          ; go process checksum
  83. 8016D: 8D34150    GOVLNG 05143          ; MC: Restore D,B,D1,D0 (C=D0), Clear Carry and continue RPL
  84.  . . . . . . ! End of Code
  85.     ; *** (3:checksum,2:orig str,1:new object) ***
  86. 80174: 03188 ; Internal DUP
  87. 80179: 05944 ; Internal BYTES (non-ROM objects) -> (2:System Binary,1:Binary Integer)
  88. 8017E: 60F9B ; drop level two object
  89. 80183: 60FBB ; Internal 4 ROLL
  90. 80188: 63CFE ; if SAME, then do next/return, else skip next
  91. 8018D: 60F9B ; drop level two object
  92. 80192: 03244 ; Internal DROP
  93. 80197: [...] ! "Invalid String"
  94. 801BD: 1A339 ; DOERR (XLIB 2 42)
  95. 801C2: 0312B ! End Marker
  96. 801C7: 0312B ! End Marker
  97.